package com.jy.wms.dao;

import com.github.pagehelper.Page;
import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;

   /**
   * @ClassName: WmsStockMoveMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author Yjs
   * @Date Tue Nov 21 17:13:15 GMT+08:00 2017
   */
   public interface WmsStockMoveMapper extends BaseDao<WmsStockMove>{

   /**
    * 不确认添加
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsStockMove") WmsStockMove entity);
    /**
     * 确认添加
     * @param entity 实体对象
     * @return int
     */
     public Integer baseInsert2(@Param("WmsStockMove") WmsStockMove entity);
    /**
     * 查询移动后库位ID(目标储位)数据
     * @param ydhkwid
     * @return
     */
    public WmsLibraryPosition searchMbKw(@Param("ydhkwid") String ydhkwid);

    /**
     * 查询库位内的货品
     * @param ydhkwid
     * @param hpbh
     * @param hppc
     * @return
     */
    public List<WmsStock> searchKcHp(@Param("ydhkwid") String ydhkwid,@Param("hpbh") String hpbh,@Param("hppc") String hppc);

       /**
        * 查询库位内的货品
        *
        * @param ydhkwid
        * @param hpbh
        * @param hppc
        * @return
        */
       public List<WmsStock> searchKcHp2(@Param("ydhkwid") String ydhkwid, @Param("hpbh") String hpbh, @Param("hppc") String hppc);

       /**
        * 移动后库位查询库存(查看是否被占用)
        *
        * @param ydhkwid
        * @return
        */
       public List<WmsStock> searchKcHp0(@Param("ydhkwid") String ydhkwid);
    /**
     * 添加库存移动明细
     * @param wmsStockMoveDetailed
     * @return
     */
    public Integer baseInsertDetail(@Param("WmsStockMoveDetailed") WmsStockMoveDetailed wmsStockMoveDetailed );

    /**
     * 查询货品所在库存信息
     * @param hpkcid
     * @return
     */
    public WmsStock searchKc2(@Param("hpkcid") String hpkcid);

    /**
     * 保存转移的库存信息
     * @param wmsStock
     * @return
     */
    public Integer saveKc(@Param("WmsStock") WmsStock wmsStock);
    /**
     * 更改库存待转移数量
     * @param hpkcid
     * @param zysl
     * @return
     */
    public Integer updateDzysl(@Param("hpkcid") String hpkcid,@Param("zysl") Integer zysl);

    /**
     *
     * @param hpkcid
     * @param zysl
     * @return
     */
    public Integer updateDzysl2(@Param("hpkcid") String hpkcid,@Param("zysl") Integer zysl);
    /**
     * 查询货主信息
     * @param hzid
     * @return
     */
    public WmsOwner searchHz(@Param("hzid") String hzid);

    /**
     * 作废按钮,更改库存移动状态,记录修改人
     * @param id
     * @param zfry
     * @param ydzt
     * @return
     */
    public Integer baseDeleteBathPrimaryKeys(@Param("id") String id,@Param("zfry") String zfry,@Param("ydzt") Integer ydzt);
       /**
        * 删除（根据ID删除）
        * @return int
        */
       public Integer deleteYdMx(@Param("id") String id);

    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsStockMove>
    */
    public List<WmsStockMove>  baseSelectPage(@Param("WmsStockMove") WmsStockMove entity);

    /**
    * 查看库存转移信息
    * @param id 主键ID
    * @param ydzt
    * @return User
    */
    public WmsStockMove  getWmsStockMoveById(@Param("id") String id,@Param("ydzt") Integer ydzt);

    /**
     * 查看库存转移明细信息
     * @param id
     * @return
     */
    public List<WmsStockMoveDetailed> getWmsStockMoveDetailById(@Param("id") String id);
   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsStockMove") WmsStockMove entity);
    /**
     *  查询货品信息
     * @param hpbh
     * @return
     */
    public List<WmsGoods> searchHp(@Param("hpbh") String hpbh);

    /**
     * 查询属性为“正常/管控”,并且有效的库位
     * @param stringList
     * @param lx
     * @param sfyx
     * @param hzId
     * @param ckId
     * @return
     */
    public List<WmsLibraryPosition> searchKw(@Param("stringList") List<String> stringList, @Param("lx") String lx, @Param("sfyx") String sfyx, @Param("hzId") String hzId, @Param("ckId") String ckId, @Param("mc") String mc);
    /**
     * 查询库位组内属性为“正常/管控”,并且有效的库位
     * @param wmsGoodsList
     * @param stringList
     * @param lx
     * @param sfyx
     * @param hzId
     * @param ckId
     * @return
     */
    public List<WmsLibraryPosition> searchKwMx(@Param("wmsGoodsList") List<WmsGoods> wmsGoodsList, @Param("stringList") List<String> stringList, @Param("lx") String lx, @Param("sfyx") String sfyx, @Param("hzId") String hzId, @Param("ckId") String ckId, @Param("mc") String mc);

   /**
    * 查询可移动库存
    * @param wmsStockMoveDetailed
    * @return
    */
   public List<WmsStockMoveDetailed> searchKc(@Param("WmsStockMoveDetailed") WmsStockMoveDetailed wmsStockMoveDetailed );

   /**
    * 判断移动状态是否全是未确认的数据
    * @param ydzt
    * @param ids
    * @return
    */
   public List<WmsStockMove> searchConfirm(@Param("ydzt") Integer ydzt,@Param("ids") List<String> ids);

   /**
    * 查询库存移动明细(根据库存移动主表ID)
    * @param ids
    * @return
    */
   public List<WmsStockMoveDetailed> searchYdMx(@Param("ids") List<String> ids);

   /**
    * 更改库存数量以及待转移数量
    * @param kcId
    * @param zysl
    * @return
    */
   public Integer updateKcSl(@Param("kcId") String kcId,@Param("zysl") Integer zysl);
   /**
    * 更改库存转移明细确认后生成的库存ID
    * @param zyMxId
    * @param kcId
    * @return
    */
    public Integer updateKcZyMx(@Param("zyMxId") String zyMxId,@Param("kcId") String kcId);

    /**
     * 更改库存移动状态
     * @param ids
     * @param ydzt1
     * @param qrr
     * @return
     */
    public Integer updateYdZt(@Param("ids") List<String> ids,@Param("ydzt1") Integer ydzt1,@Param("qrr") String qrr);

    /**
     * 查询库存移动明细信息
     * @param id
     * @return
     */
    public List<WmsStockMoveDetailed> searchYdMx2(@Param("id") String id);

       /**
        * 查询库存移动明细信息
        *
        * @param id
        * @return
        */
       public WmsStockMoveDetailed searchYdMx3(@Param("id") String id);
    /**
     * 更改库存数量(移动状态 0：未确认)
     * @param kydsl
     * @param hpkcid
     * @return
     */
    public Integer updateKcSl2(@Param("kydsl") String kydsl,@Param("hpkcid") String hpkcid);
    /**
     * 删除新库存(移动状态 1：确认)
     * @param xhpkcid
     * @return
     */
    public Integer deleteKc(@Param("xhpkcid") String xhpkcid);

       /**
        * 自动确认移动
        *
        * @param wmsStock
        * @return
        */
       public Integer updateKcSl3(@Param("WmsStock") WmsStock wmsStock);

       /**
        * 不自动确认移动
        *
        * @param wmsStock
        * @return
        */
       public Integer updateKcSl4(@Param("WmsStock") WmsStock wmsStock);

       /**
        * 确认功能原库存更改数据
        *
        * @param wmsStock1
        * @return
        */
       public Integer updateKcSl5(@Param("WmsStock") WmsStock wmsStock1);

       /**
        * 导出库存移动信息
        *
        * @param entity
        * @return
        */
       public List<WmsStockMove> exportWmsStockMove(@Param("WmsStockMove") WmsStockMove entity);
}
